package com.fingard.dsp.bank.helpers;

import com.fingard.constant.Format;
import com.fingard.dsp.bank.reqrespobj.batpayrec.ReqBatPayRec;
import com.fingard.dsp.bank.reqrespobj.contract.ReqContract;

import java.math.BigDecimal;
import java.text.ParseException;
import java.util.Date;

/**批次信息，用于批量代收付，
 * 需记录发银行的批次号， 或者记录银行响应的批次号，
 * 以及文件名，文件上传状态等，
 * 按月份+渠道分表，一个渠道一个表，因为需按顺序取批次序号
 * 
 * 使用说明：批量代收付，仅记录整批状态，即一批一条记录*/
public class SeqBatchInfo {
	
	public void loadFromReqBat(ReqBatPayRec pReqBat) throws ParseException{
		this.bankCode = pReqBat.reqHeader.bankCode;
		this.bankFrontCode = pReqBat.reqHeader.bankFrontCode;
		this.paySentTime = pReqBat.getPayDateTime();
		this.payDate = Integer.parseInt(Format.Date8Format.format(paySentTime));
		this.reqBatchNo = pReqBat.reqBatchNO;
		this.transType = pReqBat.reqHeader.transType;
		this.totalAmt = new BigDecimal(pReqBat.totalAmt);
		this.totalNum = Integer.parseInt(pReqBat.totalNum);
	}

    public void loadFromReqBat(ReqContract p_req) throws ParseException{
        this.bankCode = p_req.reqHeader.bankCode;
        this.bankFrontCode = p_req.reqHeader.bankFrontCode;
        this.paySentTime = new Date();
        this.payDate = Integer.parseInt(Format.Date8Format.format(paySentTime));
        this.reqBatchNo = p_req.contractDetail.askNumber;
        this.transType = p_req.reqHeader.transType;
    }

	/**线路代码，如PSBC11*/
	public String bankCode;
	/**支付发送时间PayDate+PayTime*/
	public Date paySentTime;
	/**请求批次号*/
	public String reqBatchNo;
	
	/**支付日期yyyyMMdd*/
	public int payDate;
	
	/**批次序号，一般是从1开始编的序号，如1，2，3等*/
	public int batSeqNo;
	
	/**前置机代码（标识）*/
	public String bankFrontCode;
	
	/**发送给银行的批次号*/
	public String bankReqBatchNo;
	
	/**银行返回的批次号*/
	public String outBatchNo;
	
	/**交易类型，如1988、9188*/
	public String transType;
	
	/**业务类型，一般用于查询状态时需此必填项，如果需要则记录*/
	public String busiType;

	/**上传的文件名，仅文件名*/
	public String upFileName;
	
	/**上传的文件路径*/
	public String upFilePath;
	
	/**文件上传状态，0未上传，2已上传，3失败，5未知*/
	public String upFileState;
	
	/**通知状态，0未通知，2已通知*/
	public String notifyState;
	
	/**文件下载状态，0未下载，2已下载，3失败*/
	public String downFileState; 
	
	/**结果文件下载后保存路径*/
	public String downFilePath;
	
	public String reserve1;//备用字段
	public String reserve2;
	public String reserve3;
	
	public int totalNum;
	public BigDecimal totalAmt;
	
	public Date createdOn;
	public Date lastModifiedOn;
	public int rowVersion;
}
